package com.baodian;

import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;

/**
 * 基础练习
 */
public class Basic {

    //写一个方法,实现字符串的反转,如:输入 abc,输出 cba
    public String test01(String str) {
        char[] strs = str.toCharArray();
        int length = str.length();
        char[] result = new char[length];
        for (int i = 0; i < length; i++) {
            result[i] = strs[length - i - 1];
        }
        return String.valueOf(result);
    }

    //写一个方法,实现字符串的替换,如:输入 bbbwlirbbb,输出 bbbhhtccc。
    public String test02(String str) {
        return str.replace('w', 'h')
                .replace('l', 'h')
                .replace('r', 't')
                .replace('b', 'c');
    }

    //如何取小数点前两位,并四舍五入。
    public String test03(double arg) {
        DecimalFormat decimalFormat = new DecimalFormat("0.##");
        return decimalFormat.format(arg);
    }

    //    对于：&  -- >  只要左右两边有一个为false，则为false；只有全部都为true的时候，结果为true
    //    对于：&& -- > 只要符号左边为false，则结果为false；当左边为true，同时右边也为true，则结果为true
    public void test04() {
        String str = null;
        //对于：&& -- >  只有当符号"&&"左边程序为真(true)后，才会执行符号"&&"右边的程序。
        if (str != null && !"".equals(str)) {
            //do something
        }
        //对于：&   -- >  不管怎样，都会执行"&"符号左右两边的程序
        if (str != null & !"".equals(str)) {
            //do something
        }
    }

    //HashMap几乎可以等价于Hashtable，除了HashMap是非synchronized的，
    // 并可以接受null(HashMap可以接受为null的键值(key)和值(value)，而Hashtable则不行)。
    public void test05() {
        Hashtable ht = new Hashtable();
        ht.put("", "");
//        ht.put(null, "123");//会报错哦
        System.out.println(ht);


        Map map = new HashMap();
        map.put(null, "");
    }


    public static void main(String[] args) {
        Basic basic = new Basic();
        System.out.println(basic.test01("abc"));
        System.out.println(basic.test02("bbbwlirbbb"));
        System.out.println(basic.test03(0.85441658));
        basic.test04();
        basic.test05();
    }
}
